package main

import (
	"fmt"
	"log"
	"net/url"
)

func main() {
	//EscapedPath 返回 u.Path 的转义形式。 一般来说，任何路径都有多种可能的转义形式。
	//当 EscapedPath 是 u.Path 的有效转义时，它返回 u.RawPath。 否则 EscapedPath 会忽略 u.RawPath 并自行计算转义形式。
	//String 和 RequestURI 方法使用 EscapedPath 来构造它们的结果。 一般来说，代码应该调用 EscapedPath 而不是直接读取 u.RawPath。

	u, err := url.Parse("http://example.com/x/y%2Fz")
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Path:", u.Path)
	fmt.Println("RawPath:", u.RawPath)
	fmt.Println("EscapedPath:", u.EscapedPath())
	//Path: /x/y/z
	//RawPath: /x/y%2Fz
	//EscapedPath: /x/y%2Fz
}
